home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Utilities
/
Unix
/
satan-1.1.1
/
perl
/
getfqdn.pl
< prev
next >
Wrap
Text File
|
1995-04-10
|
1KB
|
52 lines
#
# Look up a host name the hard way, using nsloookup. Don't rely on the
# gethostbyname() library routine, as there are too many broken NIS
# setups. Return an empty string in case of errors.
#
# Stand-alone usage: getfqdn.pl hostname.
#
# version 1, Tue Mar 21 19:31:03 1995, last mod by wietse
#
require 'config/paths.pl';
require 'config/satan.cf';
sub getfqdn {
local($host) = @_;
local($result, $temp);
if ($host =~ /^[0-9.]+$/) {
return $host unless ($temp = &get_host_name($host));
$host = $temp;
}
if ($dont_use_nslookup) {
return &get_host_name($host);
}
if (!exists($getfqdn_cache{$host})) {
open(NSLOOKUP, "$NSLOOKUP 2>/dev/null <<EOF\n$host\nEOF|")
|| die "cannot run $NSLOOKUP: $!";
$result = "";
while(<NSLOOKUP>) {
if (/name:\s+(\S+)/i) {
($result = $1) =~ tr /A-Z/a-z/;
last;
}
}
close(NSLOOKUP);
$getfqdn_cache{$host} = $result;
}
return($getfqdn_cache{$host});
}
#
# Some scaffolding code for stand-alone testing.
#
if ($running_under_satan == 0) {
$running_under_satan = 1;
require 'perl/get_host.pl';
$host = &getfqdn($ARGV[0]);
print "$host\n";
}
1;